function handlerA() {
    var a = 10;
    function addA() {
        a++;
        return a;
    }
    function reduceA() {
        a--;
        return a;
    }

    function doubleA() {
        a *= 2;
        return a;
    }

    function getA() {
        return a;
    }
    function setA(val) {
        a = val;
        return a;
    }

    return {
        addA,
        reduceA,
        doubleA,

        // getA,
        // setA,

        // 给对象添加a属性  => 取值拦截
        // Object.defineProperty({},a,{
        //     get(){},
        //     set(){},
        // })

        // 简写
        get a(){
            console.log("取值拦截");
            return a;
        },
        set a(val){
            a = val;
        }


    }
}